/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.eurotrader.componentes;

import br.com.eurotrader.controller.CadGerCidadeController;
import br.com.eurotrader.controller.CadGerEstadoController;
import br.com.eurotrader.entidades.Cidade;
import br.com.eurotrader.entidades.Estado;
import br.com.eurotrader.utils.FacesUtils;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.faces.model.SelectItem;
import javax.inject.Named;

/**
 *
 * @author PROG01
 */
@Stateless
@Named
public class BeanEstadoCidade {

    private Estado estadoSelecionado;

    public Estado getEstadoSelecionado() {
        return estadoSelecionado;
    }

    public void setEstadoSelecionado(Estado estadoSelecionado) {
//        if (estadoSelecionado == null){
//            estadoSelecionado = (Estado) cadGerEstadoController.getObjetoDao().getPorCampo("descricao", "PARANÁ");
//        }
        this.estadoSelecionado = estadoSelecionado;
    }
    @EJB
    CadGerEstadoController cadGerEstadoController;
    @EJB
    CadGerCidadeController cadGerCidadeController;

    public List<SelectItem> getCidades() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        if (estadoSelecionado == null) {
            estadoSelecionado = (Estado) cadGerEstadoController.getObjetoDao().getPorCampo("descricao", "PARANÁ");
        }
        List<Cidade> cidades = new ArrayList<Cidade>();
//        if (estadoSelecionado != null) {
//            cidades = cadGerCidadeController.getObjetoDao().pesq("SELECT p FROM Cidade p ",
//                    "ORDER BY p.descricao");
//        }
        if ((estadoSelecionado != null) && (estadoSelecionado.getId() != null)) {
            cidades = cadGerCidadeController.getObjetoDao().pesq("SELECT p FROM Cidade p WHERE p.estadoId.id = " + estadoSelecionado.getId(),
                    "ORDER BY p.descricao");
        }
        
        if ((cidades != null) && (!cidades.isEmpty())) {
            for (Cidade e : cidades) {
                items.add(new SelectItem(e, e.getDescricao()));
            }
        }
        
        return items;
    }
}
